跳到主要内容

Unity 物理相关学习

Rigidbody 里面的重力

Rigidbody 里面的这个 Gravity Scale 实际上修改的不是重力(9.8)它只是一个比例,指占某个重力常数的百分比

image.png

如果要修改重力常数需要在项目设置里面调

image.png

如果遇到碰到墙还在移动时无法跳跃的问题可以给这个 Rigidbody 设置一个物理的属性,将其的摩擦力调低(第一个是摩擦力,第二个是弹力)

OnTriggerEnter2D

参考资料 MonoBehaviour.OnTriggerEnter2D(Collider2D)

当另一个对象进入附加到该对象的触发碰撞体时发送(仅限 2D 物理)。

注意:被碰撞的物体的碰撞盒需要勾选 isTrigger

public class PlayerHealth : MonoBehaviour
{
private int trapsLayer;

private void Start()
{
// 就像动画参数需要获取编号一样,这个 Layer 也需要图层编号
trapsLayer = LayerMask.NameToLayer("Traps");
}

private void OnTriggerEnter2D(Collider2D collision)
{
// collision.gameObject.name 被碰到的对象
if (collision.gameObject.layer == trapsLayer)
{
// do something...
}
}
}